
 1000  *SAVE S.MACRO EXAMPLES
 1010  *--------------------------------
 1020  *    BY SANDY GREENFARB
 1030  *--------------------------------
 1040  *
 1050  *    PARAMETERS CAN SUBSTITUTE ANYWHERE,
 1060  *      EVEN IN OPCODES
 1070  *--------------------------------
 1080         .MA TEST     VALUE,CONDITION,LABEL
 1090         CMP ]1
 1100         B]2 ]3
 1110         .EM
 1120  *
 1130         >TEST #3,CC,SMALLER
 1140         >TEST TYPE,EQ,SAME
 1150  *
 1160  TYPE   .DA #35
 1170  SAME   NOP
 1180  SMALLER NOP
 1190  *--------------------------------
 1200  *
 1210  *   MACROS CAN SIMPLIFY CODE FOR EFFICIENCY
 1220  *--------------------------------
 1230         .MA SETD     VALUE,VARIABLE
 1240         LDA #]1      LO-BYTE
 1250         STA ]2
 1260      .DO ]1/256*257-]1  ARE LOW AND HI EQUAL?
 1270         LDA /]1
 1280      .ELSE
 1290  *                   HI = LO-BYTE
 1300      .FIN
 1310         STA ]2+1
 1320         .EM
 1330  *
 1340         >SETD $1234,VALUE
 1350         >SETD $2323,VALUE
 1360  *
 1370  VALUE  .BS 2
 1380  *--------------------------------
 1400  *
 1410  *   MACROS CAN PREVENT PROGRAMMING MISTAKES
 1420  *      SUCH AS OVER-WRITING WHEN YOU COPY
 1430  *      ONE VARIABLE INTO ANOTHER.
 1440  *--------------------------------
 1450         .MA MOVD     VAR1,VAR2
 1460      .DO ]2-]1-1
 1470         LDA ]1       NO OVERLAP
 1480         STA ]2
 1490         LDA ]1+1
 1500         STA ]2+1
 1510      .ELSE
 1520         LDA ]1+1     THIS CODE BUILT WHEN THE
 1530         STA ]2+1     VARIABLES OVERLAP
 1540         LDA ]1
 1550         STA ]2
 1560      .FIN
 1570         .EM
 1580  *
 1590         >MOVD $11,$22
 1600         >MOVD $28,VALUE
 1610         >MOVD $11,$12
 1620  *--------------------------------

